import random

def generate_combine_test_cases(num_random_cases=10):


    test_cases = []

    # Add some specific edge and common cases
    test_cases.append((4, 2))  # Standard example
    test_cases.append((1, 1))  # Smallest case
    test_cases.append((5, 1))  # K=1
    test_cases.append((5, 5))  # K=N
    test_cases.append((7, 3))  # Medium case
    test_cases.append((10, 2)) # Larger N, small K
    test_cases.append((10, 8)) # Larger N, K close to N (C(N, K) = C(N, N-K))

    # Generate random cases
    for _ in range(num_random_cases):
        n = random.randint(1, 12)  # N up to 12 as combinations grow quickly
        k = random.randint(1, n)   # K must be between 1 and N
        test_cases.append((n, k))

    # Remove duplicates if any
    test_cases = sorted(list(set(test_cases)))

    return test_cases